package com.glory.cqaospda.adapter;


import android.graphics.Color;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.glory.cqaospda.R;
import com.glory.cqaospda.base.Constant;
import com.glory.cqaospda.bean.LotInfoBean;
import com.pda.platform.ui.ui_pdaplatform.utils_public.FreeApi_LogUtils;

import java.util.List;

import androidx.annotation.Nullable;

public class FixtureBindAdapter extends BaseQuickAdapter<LotInfoBean, BaseViewHolder> {
    private Boolean isEndRun;
    private List<LotInfoBean> datalist;
    private String lotid;
    private String isEnd;
    private static Boolean isMainLot = false;
    public FixtureBindAdapter(@Nullable List<LotInfoBean> data, Boolean s, String lotid, String isEnd) {
        super(R.layout.adapter_fixturebind, data);
        datalist = data;
        isEndRun = s;
        this.lotid = lotid;
        this.isEnd = isEnd;
    }
    private OnItemClickListener mOnItemClickListener;

    @Override
    protected void convert(BaseViewHolder helper, LotInfoBean item) {

        if (isEndRun) {
            if (item.getMState().equals("TrackIn") || item.getMState().equals("End")) {
                helper.setGone(R.id.tvState, false);
                helper.setText(R.id.tvState,item.getMState());
                Button tvStart = helper.getView(R.id.tvStart);
                Button tvEnd = helper.getView(R.id.tvEnd);
                Button tvStop = helper.getView(R.id.tvStop);
                tvStart.setEnabled(true);
                tvEnd.setEnabled(false);
                tvStop.setEnabled(false);
                tvStart.setTextColor(Color.parseColor("#006DCC"));
                tvEnd.setTextColor(Color.parseColor("#9F9D9D"));
                tvStop.setTextColor(Color.parseColor("#9F9D9D"));
                helper.setGone(R.id.tvok, true);
//            helper.setGone(R.id.tvStop, true);
//            helper.setGone(R.id.tvStart, false);
                helper.setGone(R.id.tvEnd, false);
            }
//            if (item.getMState().equals("End")) {
//                helper.setGone(R.id.tvok, false);
//                helper.setGone(R.id.ivDelete, true);
//                helper.setGone(R.id.tvStop, true);
//                helper.setGone(R.id.tvEnd, false);
//                helper.setGone(R.id.tvStart, true);
//                helper.setText(R.id.tvState,item.getMState());
//                TextView tvok = helper.getView(R.id.tvok);
//                Button tvEnd = helper.getView(R.id.tvEnd);
//                tvEnd.setEnabled(false);
//                tvok.setEnabled(false);
//                tvEnd.setTextColor(Color.parseColor("#9F9D9D"));
//                tvok.setTextColor(Color.parseColor("#9F9D9D"));
//            }
            FreeApi_LogUtils.saveErrorMessages(
                    item.getMState(),
                    "FixtureBindAdapter"
            );
            if (item.getMState().equals("Stop")) {
                helper.setGone(R.id.tvok, true);
                helper.setGone(R.id.tvStart, false);
                helper.setGone(R.id.tvState, false);
                helper.setText(R.id.tvState,item.getMState());
                Button tvStop = helper.getView(R.id.tvStop);
                Button tvStart = helper.getView(R.id.tvStart);
                Button tvEnd = helper.getView(R.id.tvEnd);
                tvStop.setEnabled(false);
                tvStart.setEnabled(false);
                tvEnd.setEnabled(true);
                tvStop.setTextColor(Color.parseColor("#9F9D9D"));
                tvStart.setTextColor(Color.parseColor("#9F9D9D"));
                tvEnd.setTextColor(Color.parseColor("#006DCC"));

//            helper.setGone(R.id.tvStop, false);
//            helper.setGone(R.id.tvStart, true);
            }

            if (item.getMState().equals("Start")) {

                helper.setGone(R.id.tvState, false);
                helper.setText(R.id.tvState,item.getMState());
                Button tvStart = helper.getView(R.id.tvStart);
                Button tvEnd = helper.getView(R.id.tvEnd);
                Button tvStop = helper.getView(R.id.tvStop);
                tvStart.setEnabled(false);
                tvEnd.setEnabled(false);
                tvStop.setEnabled(true);
                tvStart.setTextColor(Color.parseColor("#9F9D9D"));
                tvEnd.setTextColor(Color.parseColor("#9F9D9D"));
                tvStop.setTextColor(Color.parseColor("#006DCC"));
                helper.setGone(R.id.tvok, true);
//            helper.setGone(R.id.tvStop, true);
//            helper.setGone(R.id.tvStart, false);
                helper.setGone(R.id.tvEnd, false);
            }

            if (item.getMState().equals("EndRun")) {

                helper.setGone(R.id.tvState, false);
                helper.setText(R.id.tvState,item.getMState());
                Button tvStart = helper.getView(R.id.tvStart);
                Button tvEnd = helper.getView(R.id.tvEnd);
                Button tvStop = helper.getView(R.id.tvStop);
                tvStart.setEnabled(false);
                tvEnd.setEnabled(false);
                tvStop.setEnabled(false);
                tvStart.setTextColor(Color.parseColor("#9F9D9D"));
                tvEnd.setTextColor(Color.parseColor("#9F9D9D"));
                tvStop.setTextColor(Color.parseColor("#9F9D9D"));
                helper.setGone(R.id.tvok, true);
//            helper.setGone(R.id.tvStop, true);
//            helper.setGone(R.id.tvStart, false);
                helper.setGone(R.id.tvEnd, false);
            }

            if (item.getMState().equals("TrackOut")) {

                helper.setGone(R.id.tvState, false);
                helper.setText(R.id.tvState,item.getMState());
                Button tvStart = helper.getView(R.id.tvStart);
                Button tvEnd = helper.getView(R.id.tvEnd);
                Button tvStop = helper.getView(R.id.tvStop);
                tvStart.setEnabled(false);
                tvEnd.setEnabled(false);
                tvStop.setEnabled(false);
                tvStart.setTextColor(Color.parseColor("#9F9D9D"));
                tvEnd.setTextColor(Color.parseColor("#9F9D9D"));
                tvStop.setTextColor(Color.parseColor("#9F9D9D"));
                helper.setGone(R.id.tvok, true);
//            helper.setGone(R.id.tvStop, true);
//            helper.setGone(R.id.tvStart, false);
                helper.setGone(R.id.tvEnd, false);
            }

        }

        if (isEnd.equals("")){
            helper.setGone(R.id.tvok, true);
            helper.setGone(R.id.ivDelete, false);
            helper.setGone(R.id.tvStop, true);
            helper.setGone(R.id.tvStart, true);
            helper.setGone(R.id.tvEnd, true);
            helper.setGone(R.id.linear, true);
            helper.setGone(R.id.tvState, true);

        }

        if (lotid.equals("")) {
            helper.setText(R.id.tvLot, item.getMLotId());
            helper.setText(R.id.tvCircuit, item.getMLotQty());
            helper.getView(R.id.ivDelete).setOnClickListener(view -> {
                remove(helper.getAdapterPosition());
                notifyDataSetChanged();
                if (item.getMIsResidue() == "N") {
                    isMainLot = true;
                }else {
                    isMainLot = false;
                }
            });
        }else {
            helper.setText(R.id.tvLot, item.getMLotId());
            helper.setText(R.id.tvCircuit, item.getMLotQty());
        }

        helper.getView(R.id.tvStart).setOnClickListener(view -> {
            mOnItemClickListener.onItemClick("State",item);
        });

        helper.getView(R.id.tvStop).setOnClickListener(view -> {
            mOnItemClickListener.onItemClick("stop", item);
        });

        helper.getView(R.id.tvEnd).setOnClickListener(view -> {
            mOnItemClickListener.onItemClick("End", item);
        });

    }

    public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) {
        this.mOnItemClickListener = mOnItemClickListener;
    }

    public static boolean getIsMainLot() {
        return isMainLot;
    }

    public interface OnItemClickListener {
        void onItemClick(String type, LotInfoBean lotInfoBean);
    }

}
